namespace PagedDataGridView
{
    /// <summary>
    /// Defines the structure of a page
    /// </summary>
    public interface IPageData
    {
        /// <summary>
        /// Sort column
        /// </summary>
        string SortBy { get; set; }

        /// <summary>
        /// Current grid page, 0 based index. 
        /// </summary>
        int Page { get; set; }

        /// <summary>
        /// Rows per page
        /// </summary>
        int PageSize { get; set; }

        /// <summary>
        /// Shows if sort order is ascending
        /// </summary>
        bool Ascending { get; set; }

        /// <summary>
        /// Total page count
        /// </summary>
        int Pages { get; }

        /// <summary>
        /// First row or/no on current page.
        /// </summary>
        int StartRow { get;  }

        /// <summary>
        /// Last row or/no on current page.
        /// </summary>
        int EndRow { get;  }

        /// <summary>
        /// Total rows count
        /// </summary>
        long TotalRows { get; set; }
    }
}